from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, BadData
from django.conf import settings
#对openID进行序列化和反序列化


def generate_access_token_openid(openid):
    """对传入的 openid 进行加密处理, 返回 token"""
    # QQ 登录保存用户数据的 token 有效期
    # settings.SECRET_KEY: 加密使用的秘钥
    # 过期时间: 600s = 10min
    #创建序列化器对象
    serializer = Serializer(settings.SECRET_KEY, 600)
    data = {'openid': openid}

    # 对 dict 进行加密
    token = serializer.dumps(data)

    # 加密完之后, 解码返回.
    return token.decode()

def check_access_token_openid(access_token):
    """
    反序列化openID
    :param access_token: 密文字符串
    :return: 明文
    """
    #创建序列化器对象
    serializer = Serializer(settings.SECRET_KEY, 600)

    #返序列化
    try:
        data = serializer.loads(access_token)
    except BadData:
        return None

    #读取openid明文
    openid = data.get('openid')

    # 返回openID明文

    return openid